[CDK]API GatewayのaccessLogFormatにintegrationRequestIdを設定する方法

[CDK]API GatewayのaccessLogFormatにintegrationRequestIdを設定する方法

Clock Icon2024.01.09

こんにちは稲葉です。

最近、CDKでAPI GatewayのaccessLogFormatにintegrationRequestIdを設定する際に少し詰まったので、その内容と対処法を交えて、本記事では、CDK でAPI GatewayのaccessLogFormatにintegrationRequestIdを設定する方法について書きたいと思います。

詰まった箇所

CDK でAPI GatewayのaccessLogFormatに値を設定する際に、AccessLogFieldクラスから取得したい値のメソッドを呼んで設定していたのですが、integrationRequestIdを取得する期待した名前のメソッド(期待した名前:contextIntegrationRequestId)が見つかりませんでした。

例:integrationStatusの場合

integrationStatus: apigateway.AccessLogField.contextIntegrationStatus()
contextIntegrationErrorMessage、contextIntegrationLatency、contextIntegrationStatusはあるのに、contextIntegrationRequestIdは見つかりませんでした。
ここで、1時間間ぐらい詰まりました。

対処法

調べた結果、遂にintegrationRequestIdを設定できる方法を見つけました。

以下がその方法です。

integrationRequestId: apigateway.AccessLogField.contextAwsEndpointRequestId()
contextAwsEndpointRequestId()でintegrationRequestIdを取得できるの?」と考えているそこの貴方。安心して下さい、大丈夫です。
公式ドキュメントによると、
$context.integration.requestIdは、$context.awsEndpointRequestIdと同等です。
そのため、contextAwsEndpointRequestIdメソッドで、integrationRequestIdを取得することが出来ます!

まとめ

本記事は、CDK でAPI GatewayのaccessLogFormatにintegrationRequestIdを設定する方法について書きました。

今回の件で改めて、困った時はAWSの公式ドキュメントを見た方が良いと再認識しました。

今後も今回のような小ネタを見つけたら記事にしていきたいと思います。

最後まで読んでくださり有難うございました。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.